The present invention relates to storage of parameters for database server instances. More specifically, the invention relates to centralized storage and management of database server configuration parameters.
In general, a database management system (DBMS) is the computer software that controls the organization, storage, retrieval, security, and integrity of information in a database. Early database management systems operated on a single computer system. However, as the need for greater access, faster retrieval and increased storage continued, it became more and more common for database management systems to be operated on a network of computer systems.
A fairly common database management system architecture is the three-tiered architecture that is shown in FIG. 1. At the core of the database management system is a central storage 101 that stores a database 102. Database 102 is typically stored on one or more hard drives, which is typically part of a larger computer system. The information can be stored on database 102 in a variety of formats with relational database management systems relying heavily on tables to store the information.
Database servers 103 are instances of a program that interacts with database 102. Each instance of the database server can, among other things, independently query database 102 and store information therein. Database servers 103 may not include user friendly interfaces, such as graphical user interfaces.
Accordingly, one or more application server 105 can provide the user interfaces to database server 103. For example, application server 105 can be a web application server on the Internet (or other network). Application server 105 can provide user friendly mechanisms for accessing database 101 through database server 103. A web browser 107 can be utilized to access application server 105.
Although the architecture shown in FIG. 1 has been very successful, current implementations can be improved. One improvement relates to the storage of configuration parameters.
In order to start or initialize a database server, a file is typically accessed that stores configuration parameters for the database server (e.g., init.ora files for Oracle® database products). Each instance of database server 103 has its own configuration file, which results in database administrators spending a significant amount of time managing the multiple configuration files.
Another improvement to current database architectures relates to self-tuning. During run time, instances of database server 103 can modify configuration parameters to improve the run time characteristics of the instance. In this manner, the instances of database server 103 become more optimized while they execute. However, once an instance is shut down (e.g., for maintenance or a crash), the self-tuned configuration parameters are lost and the new instance starts with the default configuration parameters or parameters from a configuration file. Thus, each instance may be required to go through the self-tuning process and not benefit from previous instances.
Additionally, configuration parameters for a running instance typically cannot be changed from another running instance. Changing the configuration parameters for a running instance may require logging into the appropriate instance and changing the appropriate configuration parameters. Furthermore, changing the configuration parameters for an instance for the next startup has typically required locating the configuration file for that specific instance and modifying that file. In order to perform a coordinated change of one or more configuration parameters on all instances sometimes requires changing the configuration files for each instance, which can be very time consuming.
It would be beneficial to have improved techniques for the storage and management of database configuration parameters. As an example, it would be beneficial to allow for the centralized storage of configuration parameters for multiple instances of the database server. Additionally, it would be beneficial to have techniques for storing configuration parameters that have been modified while an instance is running so that the configuration parameters can be utilized by a subsequent instance.